const sequelize = require("./db");
const { DataTypes, Sequelize } = require("sequelize");

module.exports = sequelize.define(
  "Record",
  {
    date: {
      type: DataTypes.DATE,
      allowNull: false,
      defaultValue: Sequelize.NOW,
    },
    // 日志种类（1锻炼/2饮食）
    category: {
      type: DataTypes.STRING,
      allowNull: false,
      validate: {
        isIn: [['1', '2']],  // 确保只有这两种选择
      }
    },
    title: {
      type: DataTypes.STRING(20),
      allowNull: false,
    },
    content: {
      type: DataTypes.STRING(200),
      allowNull: false,
    },
    // 心情，使用emoji表情
    mood: {
      type: DataTypes.STRING(10),
      allowNull: false,
    },
    // 图片，最多6张，使用JSON数组存储URL或者文件名
    images: {
      type: DataTypes.JSON,
      allowNull: true,
      validate: {
        isArray(value) {
          if (value && !Array.isArray(value)) {
            throw new Error('Images must be an array');
          }
          if (value && value.length > 6) {
            throw new Error('A maximum of 6 images are allowed');
          }
        },
      }
    },
  },
  {
    createdAt: true,
    updatedAt: true,
    paranoid: true, //不会真正删除，而是增加一列deletedAt
  }
);
